package leetcode_day._2022._202203._1120;

import general_class.TreeNode;

/**
 * @author yzh
 * @version 1.0
 * @date 2022/3/19 16:04
 * 根据二叉树创建字符串
 * 你需要采用前序遍历的方式，将一个二叉树转换成一个由括号和整数组成的字符串。
 * 空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。
 * 算法：二叉树
 */
public class _19_606 {

    String ans;
    public String tree2str(TreeNode root) {
        if (root == null) return "";
        ans = "";
        dfs(root);
        return ans;
    }
    void dfs(TreeNode node) {
        ans += node.val;
        if (node.left != null) {
            ans += "(";
            dfs(node.left);
            ans += ")";
        } else if (node.right != null) ans += "()";
        if (node.right != null) {
            ans += "(";
            dfs(node.right);
            ans += ")";
        }
    }

}
